def solution(n, data):
    # 初始化天数为 1
    days = 1
    while True:
        # 创建一个新的字符串用于存储下一天的衣服状态
        new_data = ""
        # 遍历每个学生
        for i in range(n):
            # 获取当前学生左右两边学生的衣服颜色
            left = data[(i - 1) % n]
            right = data[(i + 1) % n]
            current = data[i]
            # 如果左右两边学生和当前学生衣服颜色相同，则改变当前学生衣服颜色
            if left == current and right == current:
                new_data += str(1 - int(current))
            else:
                # 否则保持当前学生衣服颜色不变
                new_data += current
        # 如果新的衣服状态和原来的一样，说明达到稳定状态，退出循环
        if new_data == data:
            break
        # 更新当前衣服状态为新的状态
        data = new_data
        # 天数加一
        days += 1
        # 我们假设天数大于30天即为不稳定状态，退出循环
        if days > 30:
            break
    # 如果天数大于 0，说明达到了稳定状态
    if days > 0 and days <= 30:
        # 计算时尚达人的数量，即衣服颜色与左右两边不同的学生数量
        fashionistas = sum(1 for i in range(n) if data[(i - 1) % n] != data[i] and data[(i + 1) % n] != data[i])
        return [days, fashionistas]
    if days > 30:
        # 如果永远无法稳定，返回 [-1, -1]
        return [-1, -1]


if __name__ == "__main__":
    # Add your test cases here
    print(solution(4, "0000") == [-1, -1])
    print(solution(4, "1110") == [2, 4])
